package com.ctshk.rpc.order.tour.req;

import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

/**
 * <p>
 * 系列团游客信息
 * </p>
 *
 * @author 谭响
 * @since 2021-01-18
 */
@Data
@ApiModel(value="系列团游客信息保存批量Req", description="系列团游客信息保存批量Req")
public class SeriesOrderTouristInfoSaveBatchReq implements Serializable {

    @ApiModelProperty(value = "id")
    private Long id;

    @ApiModelProperty(value = "所属订单")
    private Long orderId;

    @ApiModelProperty(value = "团期ID")
    private Long scheduleId;

    @ApiModelProperty(value = "所属组ID")
    private Long groupId;

    @ApiModelProperty(value = "所属房间ID")
    private Long roomId;

    @ApiModelProperty(value = "所属套餐")
    private Long packageId;

    @ApiModelProperty(value = "套餐名称")
    private String packageName;

    @ApiModelProperty(value = "游客类型主数据ID")
    private Long mainDataId;

    @ApiModelProperty(value = "游客类型名称")
    private String touristTypeName;

    @ApiModelProperty(value = "中文姓")
    private String cnSurname;

    @ApiModelProperty(value = "中文姓名")
    private String cnName;

    @ApiModelProperty(value = "中文全名")
    private String cnFullname;

    @ApiModelProperty(value = "英文姓")
    private String enSurname;

    @ApiModelProperty(value = "英文名称")
    private String enName;

    @ApiModelProperty(value = "英文全名")
    private String enFullname;

    @ApiModelProperty(value = "性别")
    private Integer gender;

    @ApiModelProperty(value = "国籍")
    private String nation;

    @ApiModelProperty(value = "国籍Id")
    private Long nationId;

    @ApiModelProperty(value = "电话区号")
    private String mobileAreaCode;

    @ApiModelProperty(value = "联系方式")
    private String mobile;

    @ApiModelProperty(value = "邮箱")
    private String email;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "证件项")
    private List<SeriesOrderTouristInfoSaveBatchCertificateReq> certificateList;

    @ApiModelProperty(value = "紧急联系人姓名")
    private String emergencyContactName;

    @ApiModelProperty(value = "紧急联系人电话区号")
    private String emergencyMobileAreaCode;

    @ApiModelProperty(value = "紧急联系人电话")
    private String emergencyMobile;

    @ApiModelProperty(value = "团费")
    private BigDecimal groupFee;

    @ApiModelProperty(value = "付款状态")
    private Integer payStatus;

    @ApiModelProperty(value = "NoShow")
    @TableField("noShow")
    private Integer noshow;

    @ApiModelProperty(value = "渠道来源主数据ID")
    private Long channelId;

    @ApiModelProperty(value = "锁定状态")
    private Integer lockStatus;

    @ApiModelProperty(value="1：是，旅行团-》游客名单，签证办理为托我司办理 2：否，旅行团-》游客名单，签证办理为游客自理")
    private Integer buyVisa;

    @ApiModelProperty(value="是否购买保险")
    private Integer buyInsurance;

    @ApiModelProperty(value="保险ID")
    private Long insuranceId;

    @ApiModelProperty(value="保险名称")
    private String insuranceName;

    @ApiModelProperty(value="应收")
    private BigDecimal totalReceivables;

    @ApiModelProperty(value="实收")
    private BigDecimal totalPaidIn;

    @ApiModelProperty(value = "已退款")
    private BigDecimal refundAmount;

    @ApiModelProperty(value = "代收费用")
    private BigDecimal collectionFee;

    @ApiModelProperty(value = "调整费用")
    private BigDecimal adjustmentCost;

    @ApiModelProperty(value = "其他金额")
    private BigDecimal otherAmount;

    @ApiModelProperty(value = "已出单据金额")
    private BigDecimal receiptedAmount;

    @ApiModelProperty(value="未收")
    private BigDecimal remainingReceivables;

    @ApiModelProperty(value = "创建人")
    private Long createId;

    @ApiModelProperty(value = "修改人")
    private Long modifiedId;

    @ApiModelProperty(value = "删除标识")
    private Integer isDeleted;

    @ApiModelProperty(value = "出生日期")
    private LocalDate birthday;

    @ApiModelProperty(value = "用户Id")
    private Long userId;

    @ApiModelProperty(value = "是否完善资料")
    private Integer isFullInfo;

    @ApiModelProperty(value = "创建时间")
    private LocalDateTime gmtCreate;

    @ApiModelProperty(value = "修改时间")
    private LocalDateTime gmtModified;

    @ApiModelProperty(value = "是否收据计算过")
    private Integer isReceiptCalculated;

    @ApiModelProperty(value = "代收费用json")
    private String collectionFeeJson;

}
